﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net.Mail;
using System.Data.SqlClient;
using System.Collections.Generic;
using BLL;
using DAL;


public partial class LogIn : System.Web.UI.Page

{
    TAIKHOANBLL tkbll = new TAIKHOANBLL();
    THANHVIENBLL tvBll = new THANHVIENBLL();
    TAIKHOANBLL tkBll = new TAIKHOANBLL();
    VAITROBLL vtbll = new VAITROBLL();

    public SmtpClient client = new SmtpClient();
    public MailMessage msg = new MailMessage();

    public System.Net.NetworkCredential smptCrede = new System.Net.NetworkCredential("duccloud@gmail.com", "nguyenvanduc");
    
    protected void Page_Load(object sender, EventArgs e)
    {
    
    }

    protected void Button1_Click1(object sender, EventArgs e)
    {
        //check value input null or not null
        TAIKHOAN tk = tkbll.getTaikhoanWithTenTk(text1.Text);
        Session["taikhoanObject"] = tk;

        if (tk != null)
        {
            //set session of taikhoan
            Session["tentaikhoan"] = tk.tentaikhoan;
            Session["password"] = tk.password;

            //get vaitro
            VAITRO vt = vtbll.getTenvaitroWithTenTK(text1.Text);
            Session["vaitroObject"] = vt;
            //set session of vaitro
            Session["Tenvaitro"] = vt.tenvaitro;

            //get thanhvien
            THANHVIEN tv = tvBll.getThanhvienWithTenTK(text1.Text);
            Session["thanhvienObject"] = tv;

            //set session of thanhvien
            Session["chucvu"] = tv.chucvu;
            Session["hinh"] = tv.hinh;

            //    FormsAuthentication.HashPasswordForStoringInConfigFile(tk.password , "MD5");
            //check login here
            if (tk.password == text2.Text)
            {
                if(!tkbll.isBlock(tk.mataikhoan)){

                    Session["tenthanhvien"] = tv.tenthanhvien;
                    Session["mathanhvien"] = tv.mathanhvien;

                    if (vt.tenvaitro == "Bác sĩ")
                    {
                        OnlineActiveUsers.OnlineUsersInstance.OnlineUsers.SetUserOnline(tv.mathanhvien.ToString());
                    }

                    Response.Redirect("Home.aspx");
                }
                else{
                    Label1.Visible = true;
                    Label1.Text = "Tài khoản đang bị khóa, liện hệ người quản trị để biết thêm thông tin!";
                }

            }
            else
            {
                Label1.Visible = true;
                Label1.Text = "User name hoặc Password không đúng !";
            }
        }
        else
        {
            Label1.Visible = true;
            Label1.Text = "User name hoặc Password không đúng !";
        }
    }

    private void SendEmail(string sendTo, string senfForm, string subject, string body)
    {
        try
        {
            client.Host = "smtp.gmail.com";
            client.Port = 587;
            client.UseDefaultCredentials = false;
            client.Credentials = smptCrede;
            client.EnableSsl = true;

            MailAddress to = new MailAddress(sendTo);
            MailAddress from = new MailAddress(senfForm);

            msg.Subject = subject;
            msg.Body = body;
            msg.From = from;
            msg.To.Add(to);
            msg.IsBodyHtml = true;
            client.Send(msg);

            Label3.Text = "Đã gửi Email";
            Label2.Text = "";
        }
        catch (Exception ex)
        {
            Label2.Text = "Hệ thống bị lỗi không gửi được mail";
            Label3.Text = "";
        }
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        try
        {
            THANHVIEN tv = tvBll.getThanhvienWithEmail(text3.Text);
            List<TAIKHOAN> lisTk = tkBll.getListTaikhoanWithIDThanhvien(tv.mathanhvien);

            if (!string.IsNullOrEmpty(tv.email))
            {

                string body = "Chào bạn, có người đã sử dụng email của bạn để nhận lại tài khoản và mật khẩu trên diễn đàn bác sĩ. Sau đây là danh sách các tài khoản mà bạn đang quản lý";

                body += "<br>";
                body += "-----------------------------------------------------------------------------------";
                body += "<br>";
                body += "<ol>";
                foreach (TAIKHOAN tk in lisTk)
                {
                    body += "<li>";
                    body += "<b> Tài khoản : " + tk.tentaikhoan + "  -  Mật khẩu : " + tk.password + "</b>";
                    body += "</li>";
                }
                body += "</ol>";
                body += "<br>";

                SendEmail(text3.Text, "duccloud@gmail.com", "Nhận lại mật khẩu từ diễn đàn", body);

            }
            else
            {
                Label2.Text = "Không có dữ liệu trong hệ thống";
                Label3.Text = "";
            }
        }
        catch {
            Label2.Text = "Không có dữ liệu trong hệ thống";
            Label3.Text = "";
        }
    }
}
